package Controlador;
import Dao.DaoChofer;
import Dao.DaoCooperativa;
import Dao.DaoSocio;
import Dao.DaoUnidadT;
import Dao.DaoViaje;

import Modelo.Listas;
import Modelo.Viaje;
import Reportes.ReporteAsigChofer;
import Vista.Mensajes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ControladorReporteAsigChofer implements ActionListener {

    private ReporteAsigChofer AsigChof;

    public ControladorReporteAsigChofer() throws SQLException {
        AsigChof = new ReporteAsigChofer();
        AsigChof.agregarListener(this);
        AsigChof.setVisible(true);
        cargarComboC();
    }

    // Sirve para cargar el combo con la lista de choferes    
    private void cargarComboC() throws SQLException{
        String ced;
        ResultSet rgChofer;
        DaoChofer daoChofer = new DaoChofer();
        rgChofer=daoChofer.ConsultarChofer();
        
        while (rgChofer.next())
        {
            ced = rgChofer.getString("cedula");
            AsigChof.getCmbCedula().addItem(ced);
        }
    }
//----------------------
    //sirve para llenar los textos y tabla a partir del combo
    private void llenar() throws SQLException
    {
        String ced,nom,soc,coop,dest,placa,tipo,fecha;
        int fila=0;
        ResultSet rgVeh;
        ResultSet rgChofer;
        ResultSet rgViaje;
        DaoChofer daoChofer = new DaoChofer();
        DaoViaje daoViaje = new DaoViaje();
        DaoUnidadT daoUnid = new DaoUnidadT();
        rgChofer = daoChofer.ConsultarChofer();
        rgViaje = daoViaje.ConsultarViaje();
        rgVeh= daoUnid.ConsultarUnidadT();
        ced = AsigChof.getCmbCedula().getSelectedItem().toString();
        //Llenar los textos
        while (rgChofer.next())
        {
            if (rgChofer.getString("cedula").equals(ced))
            {
                nom = rgChofer.getString("nombres");
                AsigChof.getTxtNombre().setText(nom);
                soc = rgChofer.getString("ci_socio");
                coop= rgChofer.getString("codigo_coop");
                AsigChof.getTxtSocio().setText(soc);
                AsigChof.getTxtCooperativa().setText(coop); 
            }
        }
        //Llena la tabla

            while (rgViaje.next())
            {
                if(rgViaje.getString("cedulaempleado").equals(ced))
                {
                    placa =rgViaje.getString("placavehiculo");
                    dest = rgViaje.getString("destino");
                    fecha = rgViaje.getString("fechasalida");
                    AsigChof.getjTableAsigChofer().setValueAt(dest, fila, 0);
                    AsigChof.getjTableAsigChofer().setValueAt(fecha, fila, 1);
                    AsigChof.getjTableAsigChofer().setValueAt(placa, fila, 2);
                    
                    fila++;
                }
            }
                    
        
    }
//---------------------------------
    private void LimpiarJTable() {
        for (int t = 0; t < AsigChof.getjTableAsigChofer().getRowCount(); t++) {
            AsigChof.getjTableAsigChofer().setValueAt("", t, 0);
            AsigChof.getjTableAsigChofer().setValueAt("", t, 1);
            AsigChof.getjTableAsigChofer().setValueAt("", t, 2);
        }

    }
//---------------------------------
    private void limpiar()
    {
        AsigChof.getTxtCooperativa().setText("");
        AsigChof.getTxtNombre().setText("");
        AsigChof.getTxtSocio().setText("");
    }
//---------------------------------

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(AsigChof.getCmbCedula())) {
            String cadena;
            cadena = AsigChof.getCmbCedula().getSelectedItem().toString();
            if(cadena.equals("Seleccione"))
            {
                limpiar();
                LimpiarJTable();
            }
            LimpiarJTable();
            try {
                llenar();
            } catch (SQLException ex) {
                Logger.getLogger(ControladorReporteAsigChofer.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}
